package com.tegtech.module.captcha.service;

import com.tegtech.common.function.Procedure;
import com.tegtech.module.captcha.domain.CaptchaRule;

/**
 * 验证码校验Service
 * @Author Jun
 * @date 2021年5月25日 上午11:33:47
 */
public interface ICaptchaValidateService {

	/**
	 * 校验账号和验证码
	 * @param account
	 * @param code
	 * @param captchaRule
	 */
	void validateCaptcha(String account, String code, CaptchaRule captchaRule);
	
	/**
	 * 清除验证码缓存信息
	 * @param account
	 * @param captchaRule
	 */
	void clearCaptcha(String account, CaptchaRule captchaRule);
	
	/**
	 * 校验并删除验证码
	 * @param account
	 * @param code
	 * @param captchaRule
	 * @param procedure	校验通过后执行的逻辑
	 */
	void validateAndClearCaptcha(String account, String code, CaptchaRule captchaRule, Procedure procedure);
	
}
